
<script>
// Vue 中 template 的模板内容也可通过 render + h 两个函数实现动态创建
// h 函数用于创建虚拟 DOM 的
//  语法：h(标签名或组件名, 属性, 子内容)
// import { h } from 'vue'
export default {
  name: 'XtxBread',
  // 用于渲染DOM
  render ({ $slots }) {
    // 获取默认插槽
    const slot = $slots.default()
    // console.log(slot)
    const arr = []
    slot.forEach((item, index) => {
      // 添加一个 item 节点
      arr.push(item)
      // 再动态添加一个 i 标签(最后一项不需要添加)
      // 💥 && item.type.name 有节点名称才添加i标签(注释节点没有标签名称)
      if (index < slot.length - 1 && item.type.name) {
        // arr.push(h('i', { class: 'iconfont icon-angle-right' }))
        // 🔔 用 JSX 语法创建虚拟 DOM
        arr.push(<i class="iconfont icon-angle-right" />)
      }
    })
    // console.log(arr)
    //  <i class="iconfont icon-angle-right"></i>
    // const divVNode = h('div', { class: 'xtx-bread' }, arr)
    // 🔔 用 JSX 语法创建虚拟 DOM
    const divVNode = <div class="xtx-bread">{ arr }</div>
    // console.log(divVNode)
    return divVNode
  }
}
</script>

<style lang='less'>
.xtx-bread{
  display: flex;
  padding: 25px 10px;
  &-item {
    a {
      color: #666;
      transition: all .4s;
      &:hover {
        color: @xtxColor;
      }
    }
    // 最后一个 item 里面的 i 标签隐藏起来
    &:last-child{
      i{
        display: none;
      }
    }
  }
  i {
    font-size: 12px;
    margin-left: 5px;
    margin-right: 5px;
    line-height: 22px;
  }
}
</style>
